Houdiniメモ : VEX : 直前のポイントを取得
code:直前のポイントを取得
point(geoself(), "P", @ptnum - 1); // 自分の1つ前のポイントを取得
table:コードの意味
geoself() 自分自身のジオメトリ
"P" ポイントアトリビュート
@ptnum 自分自身のポイント番号
応用 : 接線を計算してみる
ポイントと1つ前のポイントの差分を取り、正規化(長さを1にする)と接線っぽいものが作れる(気がする...)
https://gyazo.com/6935d2fc16c922b586571faaada5468c
code:move_P_y(python)
float t = float(@ptnum) / @numpt;
@P.y += t * chf("height");
code:set_N(python)
if (@ptnum > 0) { // 直前のポイントがある
vector previousP = point(geoself(), "P", @ptnum - 1); // 自分の1つ前のポイントを取得
@N = normalize(@P - previousP); // normalizeはvectorの長さを1にする関数(ベクトル正規化を行う)
} else { // 直前のポイントがない
vector nextP = point(geoself(), "P", @ptnum + 1); // 自分の1つ後のポイントを取得
@N = normalize(nextP - @P);
}